package main

import "fmt"

/*
new 和make 进行内存分配
*/

// 错误示例 因为进行了声明，但是是个nil 没有内存，所以存不进去值
//func panicTemp() {
//	var a *int
//	*a = 100
//	fmt.Println(*a)
//
//	var b map[string]int
//	b["沙河"] = 100
//	fmt.Println(b)
//}

/*
new与make的区别
二者都是用来做内存分配的。
make只用于slice、map以及channel的初始化，返回的还是这三个引用类型本身；
而new用于类型的内存分配，并且内存对应的值为类型零值，返回的是指向类型的指针。*/

func panicResolve() {
	var a *int
	a = new(int)
	*a = 10
	fmt.Println(*a)

	var b map[string]int
	b = make(map[string]int)
	b["沙河"] = 112
	fmt.Println(b)
}

func main() {
	//panicTemp()
	panicResolve()
}
